/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.biblioteca.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.dsw2.biblioteca.dao.AutorDaoLocal;
import mx.its.dsw2.biblioteca.enumeracion.EstatusTransaccion;
import mx.its.dsw2.biblioteca.modelo.Autor;

/**
 *
 * @author Juan Carlos
 */
@Stateless
public class AutorBl implements AutorBlLocal {
    @EJB
    private AutorDaoLocal autorDao;// llmada a aun enterprise bean con el
                                   // metodo de inyeccion de objebtos pues
                                   // cuando se necesite el mismo contenedor
                                   // de EJB's creara el objeto e incicializara
                                   // la variable.
    //Este es otro comentario

    @Override
    public EstatusTransaccion register(Autor author) { 
        if(autorDao.findDuplicity(author)){
            return EstatusTransaccion.INCOMPLETO;
        }else{
            autorDao.create(author);
            return EstatusTransaccion.COMPLETO;
        }
    }

  
    @Override
    public EstatusTransaccion modify(Autor author) {
        if (author.getId() == null || autorDao.find(author.getId()) == null) {
            return EstatusTransaccion.INCOMPLETO;
        }
        else{
            autorDao.edit(author);
            return EstatusTransaccion.COMPLETO;
        }
    }

    @Override
    public EstatusTransaccion delete(Autor author) {
        if (author.getId()== null || autorDao.find(author.getId())== null) {
            return EstatusTransaccion.INCOMPLETO;
        }else{
            autorDao.remove(author);
            return EstatusTransaccion.COMPLETO;
        }
    }

    @Override
    public List<Autor> listAll() {
        return autorDao.findAll();
    }

    @Override
    public Autor findById(int idAuthor) {
        return autorDao.find(idAuthor);
    }
}
